#include "ProcessPool.hpp"
#include <memory>
#include <string>
#include "task.hpp"
#include <cstdlib>


void task1()
{
    std::cout << "lol 刷新日志" << std::endl;
}
void task2()
{
    std::cout << "lol 更新野区，刷新出来野怪" << std::endl;
}
void task3()
{
    std::cout << "lol 检测软件是否更新,如果需要，就提示用户" << std::endl;
}
void task4()
{
    std::cout << "lol 用户释放技能，更新用的血量和蓝量" << std::endl;
}

int main()
{
    std::unique_ptr<ProcessPool> ptr(new ProcessPool);
    //添加任务
    ptr->addTask(task1);
    ptr->addTask(task2);
    ptr->addTask(task3);
    ptr->addTask(task4);

    ptr->start();

    while (true)
    {
        // 生产任务
        int taskId = rand() % (ptr->taksCount());
        std::cout << "生产了一个任务, taskID: " << taskId << std::endl;
        // 推进进程池
        ptr->push(taskId);

        sleep(1);
    }

    ptr->wait();

    return 0;
}
